/*
 *
 *    Copyright (c) 2022 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP
// This file is generated from clusters-Enums-Check.h.zapt

#pragma once

#include <clusters/KeypadInput/Enums.h>

namespace chip
{
namespace app
{
	namespace Clusters
	{
		static auto __attribute__((unused)) EnsureKnownEnumValue(KeypadInput::CECKeyCodeEnum val)
		{
			using EnumType = KeypadInput::CECKeyCodeEnum;
			switch (val) {
			case EnumType::kSelect:
			case EnumType::kUp:
			case EnumType::kDown:
			case EnumType::kLeft:
			case EnumType::kRight:
			case EnumType::kRightUp:
			case EnumType::kRightDown:
			case EnumType::kLeftUp:
			case EnumType::kLeftDown:
			case EnumType::kRootMenu:
			case EnumType::kSetupMenu:
			case EnumType::kContentsMenu:
			case EnumType::kFavoriteMenu:
			case EnumType::kExit:
			case EnumType::kMediaTopMenu:
			case EnumType::kMediaContextSensitiveMenu:
			case EnumType::kNumberEntryMode:
			case EnumType::kNumber11:
			case EnumType::kNumber12:
			case EnumType::kNumber0OrNumber10:
			case EnumType::kNumbers1:
			case EnumType::kNumbers2:
			case EnumType::kNumbers3:
			case EnumType::kNumbers4:
			case EnumType::kNumbers5:
			case EnumType::kNumbers6:
			case EnumType::kNumbers7:
			case EnumType::kNumbers8:
			case EnumType::kNumbers9:
			case EnumType::kDot:
			case EnumType::kEnter:
			case EnumType::kClear:
			case EnumType::kNextFavorite:
			case EnumType::kChannelUp:
			case EnumType::kChannelDown:
			case EnumType::kPreviousChannel:
			case EnumType::kSoundSelect:
			case EnumType::kInputSelect:
			case EnumType::kDisplayInformation:
			case EnumType::kHelp:
			case EnumType::kPageUp:
			case EnumType::kPageDown:
			case EnumType::kPower:
			case EnumType::kVolumeUp:
			case EnumType::kVolumeDown:
			case EnumType::kMute:
			case EnumType::kPlay:
			case EnumType::kStop:
			case EnumType::kPause:
			case EnumType::kRecord:
			case EnumType::kRewind:
			case EnumType::kFastForward:
			case EnumType::kEject:
			case EnumType::kForward:
			case EnumType::kBackward:
			case EnumType::kStopRecord:
			case EnumType::kPauseRecord:
			case EnumType::kReserved:
			case EnumType::kAngle:
			case EnumType::kSubPicture:
			case EnumType::kVideoOnDemand:
			case EnumType::kElectronicProgramGuide:
			case EnumType::kTimerProgramming:
			case EnumType::kInitialConfiguration:
			case EnumType::kSelectBroadcastType:
			case EnumType::kSelectSoundPresentation:
			case EnumType::kPlayFunction:
			case EnumType::kPausePlayFunction:
			case EnumType::kRecordFunction:
			case EnumType::kPauseRecordFunction:
			case EnumType::kStopFunction:
			case EnumType::kMuteFunction:
			case EnumType::kRestoreVolumeFunction:
			case EnumType::kTuneFunction:
			case EnumType::kSelectMediaFunction:
			case EnumType::kSelectAvInputFunction:
			case EnumType::kSelectAudioInputFunction:
			case EnumType::kPowerToggleFunction:
			case EnumType::kPowerOffFunction:
			case EnumType::kPowerOnFunction:
			case EnumType::kF1Blue:
			case EnumType::kF2Red:
			case EnumType::kF3Green:
			case EnumType::kF4Yellow:
			case EnumType::kF5:
			case EnumType::kData:
				return val;
			default:
				return EnumType::kUnknownEnumValue;
			}
		}
		static auto __attribute__((unused)) EnsureKnownEnumValue(KeypadInput::StatusEnum val)
		{
			using EnumType = KeypadInput::StatusEnum;
			switch (val) {
			case EnumType::kSuccess:
			case EnumType::kUnsupportedKey:
			case EnumType::kInvalidKeyInCurrentState:
				return val;
			default:
				return EnumType::kUnknownEnumValue;
			}
		}
	} // namespace Clusters
} // namespace app
} // namespace chip
